perm filename PLTSRT.F4[NEW,LCS]2 blob
sn#152168 filedate 1975-03-22 generic text, type T, neo UTF8
00010 C SUBRS. SLUR, (JUGGLE), (LOOP), PLTSRT, (LINES), HOMER,
00110 C (PLACE), (FINDIT), SCL
06300
06500 SUBROUTINE SLUR
06600 IMPLICIT INTEGER(A-Q,T-Z)
06610 COMMON/SLR/ SLURX(72)
06700 REAL CENTR,PWDS
06710 COMMON /XRN/RN(4000) /PLTR/PLT,RHT,RDIS
06900 COMMON R2,JA,CENTR,J2,R3,R4,R5,R6,R7,R8,R9,R10,RA,RB,
06950 1 K,KQ,TWICE,RST7,RX,RXX,RTILT,RC,RZ,RW,J3,J4,
06962 1 J5,J6,J7,J8,J9,J10,J11,JQ(9)
07000 COMMON/PTR/PWDS(250),ITEM,L,I,IX /STF/RSTFAC(-3/4),RSJT2
07010 COMMON/ALF/INP,SLURY(72)
07400 CF DATA RZZ/2.8/
07500 C DEFAULT VALUE OF SLUR CURVE FACTOR IS 2.8
07600
07805 IF(JA.NE.12)GO TO 2
07810 CF RA=5.96*RSJT2*R5
07815 CF L=3
07817 CF J8=J8*RDIS
07820 CF IF(J7.LE.J6)J7=J7+360
07822 CF KQ=6
07823 CF IF(PLT)KQ=1
07825 CF10 DO 3 K=J6,J7,KQ
07830 CF R=K
07835 CF CALL LINES(R3+RA*SIND(R),CENTR+RA*COSD(R),L)
07840 CF3 L=2
07841 CF J8=J8-1
07842 CF IF(J8)RETURN
07843 CF RA=RA+1/RDIS
07845 CF L=3
07847 CF GO TO 10
07848 CJA=12 DRAWS CIRCLES. P5=RADIUS, P6=DEGR.1, P7=DEGR.2,P8=THICK(EXPANDS
07849 CALL CIRCLE
07850 RETURN
07880
07900 2 J10=1
07901 J4=-1
07902 KQ=3
07903 TWICE=-1
07904 C -1 FOR DISPLAY, USES ONLY 1/3 OF SEGMENTS
07905 IF(PLT.GE.0)GO TO 21
07907 IF(J8.GT.0)GO TO 21
07910 TWICE=0
07912 KQ=1
07915 RWID=.2
07920 IF(RHT.LT.2)GO TO 21
07925 TWICE=1
07927 RWID=.14
07928 C IF SIZE IS GT.2 3 SLURS ARE DRAWN
07930 21 RST7=RSJT2*7.
07960 RQQ=R5-R4
08000 IF(R6.GT.1000)CALL RNOTE(R6)
08010 GO TO (5,6,7),J8+4
08015 GO TO 4
08020 5 R=32
08025 C AFTER DOTTED NOTE
08030 GO TO 8
08040 6 R=22
08045 C BETWEEN NOTES
08050 8 RX=-1.3
08060 GO TO 9
08070 7 R=7
08080 RX=RSJT2
08090 9 CALL RJBX(R)
08100 R6=R6+RX
08250 4 RXX=RHORZ(R6)-R3
08260 RTILT=RQQ*RST7
08270 80 RX=SQRT(RXX**2+RTILT**2)
08280 1 R=CENTR
08300 IF(J8.GT.0)GO TO 180
08310 L=72
08400 C FOR BRACKETS
08405 CALL SLOOP
08407
08410 CF RB=RX/71.
08500 CF DO 81 K=0,71
08600 CF81 SLURX(K+1)=RB*(K)+R3
08700 CF RA=R7*RST7
08775 CF41 IF(R9.EQ.0)R9=RZZ
08800 CF R=R+RA
08900 CF L=0
09000 CF DO 40 K=36,1,-1
09100 CF L=L+1
09200 CF RW=R-RA*(K/36.)**R9
09300 CF SLURY(L)=RW
09400 CF40 SLURY(73-L)=RW
09600 CF L=72
09700
09800 CF89 IF(RTILT.EQ.0)GO TO 87
10000 CF RW=ATAN2(RTILT,RXX)
10100 CF RA=SIN(RW)
10200 CF RB=COS(RW)
10300 CF RZ=SLURX(1)
10400 CF RW=SLURY(1)
10800 CF DO 83 K=1,L
10900 CF R=SLURX(K)-RZ
10950 CF RXX=SLURY(K)-RW
11000 CF SLURX(K)=RB*R-RA*RXX+RZ
11100 CF83 SLURY(K)=RB*RXX+RA*R+RW
11200
11300 87 IF(J4)CALL LINES(SLURX(J10),SLURY(J10),3)
11310 J5=KQ
11320 J6=J10
11330 J7=L
11340 IF(J4.NE.0)GO TO 22
11350 CALL EXCH(J6,J7)
11360 J5=-1
11400 22 DO 88 K=J6,J7,J5
11500 88 CALL LINES(SLURX(K),SLURY(K),2)
11505 IF(J5.GT.1)CALL LINES(SLURX(72),SLURY(72),2)
11507 C DISPLAY END POINT OF SLUR
11510 IF(TWICE)RETURN
11520 TWICE=TWICE-1
11522 IF(J8.GT.0)GO TO 182
11525 J4=J4+1
11530 R7=R7+RWID
11535 C RWID=WIDTH OF SLUR -- SEE DATA
11540 GO TO 1
11700 180 RW=R+R7*RST7
11710 TWICE=-1
11750 KQ=1
11800 RX=RX+R3
11900 CC RA=(R5-R4)*RST7
11910 IF(J9.EQ.0)GO TO 181
11911 RZ=RTILT/(RX-R3)
11912 TWICE=2
11913 CC RZ=RX-R3
11914 RXX=RX
11916 RWID=(R3+RXX)/2.
11992 182 IF(TWICE.EQ.1)GO TO 183
11993 C DOES LEFT SIDE FIRST.
11994 IF(TWICE.EQ.0)GO TO 184
11995 C LAST IS NUMBER.
11996 J8=2
11999 RC=RSJT2*13.
12000 RX=RWID-RC
12010 RWW=RTILT
12012 185 RTILT=RZ*(RX-R3)
12020
12030 C PUT IN FUNC. HERE FOR THIS SLOPE AND FOR PART. BEAMS.
12040
12050 GO TO 181
12060 183 J8=3
12062 RX=RXX
12066 RTILT=RWW
12068 RXX=R3
12070 R3=RWID+RC
12082 RXX=RZ*(R3-RXX)
12100 R=R+RXX
12110 RW=RW+RXX
12120 GO TO 185
12150
12180 181 SLURX(1)=R3
12190 SLURY(1)=R
12200 SLURX(2)=R3
12300 SLURY(2)=RW
12400 SLURX(3)=RX
12500 SLURY(3)=RW+RTILT
12600 SLURX(4)=RX
12700 SLURY(4)=R+RTILT
12800 L=4
12900 IF(J8.EQ.2)L=3
13000 IF(J8.EQ.3)J10=2
13010 CC TWICE=-1
13100 GO TO 87
13110 184 J3=RWID
13120 C PUT IN VERT. POS. WHEN SLOPE!
13130 R4=RQQ/2.+R4+R7-1.
13135 R6=1.
13137 R7=0
13140 CALL MAKNUM(R9)
13200 END
13300 C 8, POS1, STF, NT1, NT2, POS2, DIP(ABS. UNITS), P8
13400 C FOR P8: 0= SLUR, 1=BRACKETS, 2=LFT ONLY, 3=RT ONLY
13500 C P9=NUM IN BRACKET(IF NON-ZERO)
13600
13700 C******** JUGGLER ********
13800 CF SUBROUTINE JUGGLE
13900 CF IMPLICIT INTEGER(A-Z)
14000 CF REAL PWDS,RN
14100 CF COMMON /DL/X22,SAVER,NAME /XRN/RN(4000)
14200 CF COMMON/PTR/PWDS(250),ITEM,L,I,IX/DPY/ST(4000),WDS(250),MEDIT,IGO
14300
14400 CF ITEM=ITEM-1
14500 CF JX=RN(MEDIT)+3
14600 C WD CNT OF OLD ITEM
14700 C I-IX IS WD CNT OF NEW ITEM
14800 CF JY=IX
14900 CF Z=I-IX-JX
15000 C SPACE CHANGE
15100 CF IF(Z)2751,172,751
15200 CF751 CALL LOOP(I-1,MEDIT+JX,-1,Z,0,RN)
15300 CF JY=IX+Z
15400 CF GO TO 172
15500
15600 CF2751 CALL LOOP(MEDIT+JX+Z,IX+Z-1,1,0,-Z,RN)
15700
15800 CF172 J=RN(JY)+2
15900 CF CALL LOOP(0,J,1,MEDIT,JY,RN)
16000 CF I=IX+Z
16100
16200 CF1751 X=ITEM+1
16300 CF JX=WDS(X22+1)-WDS(X22)
16400 CF J=WDS(X+1)-WDS(X)
16500 CF Y=J-JX
16600 CF JX=WDS(X)+Y+1
16700 CF IF(Y)2851,182,282
16800 CF282 CALL LOOP(WDS(X+1)+2,WDS(X22),-1,Y,0,ST)
16900 CF GO TO 182
17000
17101 CF2851 CALL LOOP(WDS(X22+1)+Y+1,WDS(X)+Y+1,1,0,-Y,ST)
17200 CF JX=WDS(X)+1
17300
17401 CF182 CALL LOOP(1,J,1,WDS(X22)+1,JX,ST)
17500 CF DO 183 K=X22+1,X
17600 CF PWDS(K)=PWDS(K)+Z
17700 CF183 WDS(K)=WDS(K)+Y
17800 CF ST(2)=WDS(X)
17900 CF X22=0
18000 CF END
18100
18200
18300 CF SUBROUTINE LOOP(I,J,K,L,M,N)
18400 CF DIMENSION N(1)
18420 CF MM=M-L
18500 CF DO 1 NN=I+L,J+L,K
18600 CF1 N(NN)=N(NN+MM)
18700 CF END
19300
19400
19500 SUBROUTINE PLTSRT
19600 C SORTS DATA TO SHORTEN INVISIBLE VECTORS WHEN PLOTTING.
19700 CF IMPLICIT INTEGER(S-Z)
19800 COMMON /XRN/RN(4000) /PTR/PWDS(250),ITEM,L,I,IX
19940 COMMON/DPY/Q(3000),P(1000),WDS(250),MEDIT,IGO
19970 C Q AND P OCCUPY DPY BUFFER. Q IS FOR OVERFLOW OF RN.
19985 CALL PSRT(P)
20000 CF DO 4 K=1,ITEM
20100 CF L=PWDS(K)
20150 CF A=RN(L+3)
20200 CF P(K)=A+1000*RN(L+2)
20250 CF4 IF(A.LT.0)GO TO 77
20262 CF IF(RN(L+1).NE.16.)GO TO 177
20268 CF77CF P(K)=-10000
20275 C PLOTS ALL NEG. HORIZ. POSITIONS AND WORDS(CODE 16) FIRST.
20300 CF177CF M=I
20320 CF IF(I.LT.1500)I=1500
20340 CF Y=I
20360 CF I=I+M-1
20380 CF M=Y
20400 C M IS IN MAIN PROG., LEAVES 1500 WDS IN RN FOR "NOIR" DATA.
20500 CF2CF A=P(1)
20600 CF L=1
20700 CF DO 1 K=1,ITEM
20800 CF IF(A.LE.P(K))GO TO 1
20900 CF A=P(K)
21000 CF L=K
21100 CF1CF CONTINUE
21200 CF IF(A.EQ.10000.)RETURN
21300 C ALL ITEMS HAVE NOW BEEN SHUFFLED
21400 CF V=PWDS(L)
21500 CF P(L)=10000
21600 CF L=RN(V)+2
21700 CF CALL LOOP(0,L,1,Y,V,RN)
21800 CF Y=Y+L+1
21900 CF GO TO 2
22000 END
22100
22200
22300
22400 SUBROUTINE BOX(I,R,STFF)
22500 COMMON/SIZ/RSZ,JCEN,KCEN /XRN/RN(4000) /STF/RSTFAC(-3/4),RSJT2
22925 DIMENSION STFF(1),N(100)
22962 EQUIVALENCE (N,RN(2901))
23000 IF(I)GO TO 4
23100 K=R
23200 K=(STFF(K+4)+AMOD(RN(I+4),100.0)*7.*RSTFAC(K)
23300 1 -40.0)*RSZ-KCEN
23350 C ↑↑↑↑ WAS -60.0 10/74
23400 C AMOD IS FOR MINI NOTES AND CLEFS
23500 L=RHORZ(RN(I+3))*RSZ-JCEN
23600 IF(IABS(L).GT.550)L=511
23700 IF(IABS(K).GT.550)K=511
23800 CC1 CALL ALINE(L,K,L+50,K)
23900 CC CALL RVECT(0,100)
24000 CC CALL RVECT(-50,0)
24100 CC CALL RVECT(0,-100)
24200 CC L=L+25
24300 CC2 CALL ALINE(L,K-25,L,K+125)
24450 CC3 CALL DPYOUT(1)
24460 CALL SETCUR(L,K,0)
24500 RETURN
24600 4 IF(I.LT.-1)GO TO 5
24700 CALL DPYSET(3,N,100)
24800 CALL DPYBRT(3)
24900 5 L=RHORZ(R)*RSZ-JCEN
25000 IF(IABS(L).GT.550)GO TO 6
25050 C DOESN'T TRY TO DRAW LINE OFF SCREEN
25100 CALL SETPOG(3)
25200 CALL ALINE(L,-511,L,511)
25300 CALL DPYOUT(3)
25400 6 CALL SETPOG(1)
25600 END
25700
25800 CC SUBROUTINE LINES(A,B,L)
25850 CC COMMON/DST/BB,CC
25900 CC COMMON /SIZ/RSZ,JCEN,KCEN /FL/IC,NZ,NX,RZ,XGP
26000 CC COMMON/DL/IXRX,SAVER,AA /PLTR/IPLT,RHT,DIS
26100 CC COMMON R2,JA,CENTR,JB,RJQ(20),JQ(20)
26200 CC COMMON/DPY/JJ(4000),WDS(250),MEDIT,IGO
26400 CC EQUIVALENCE (ITOP,JJ(3999)),(IBOT,JJ(4000))
26402 CC 1,(JJ2,JJ(2))
26500 CC DATA BB/.008/,CC/3.5/
26600 C SET XGP TO 1200.0 FOR MARGIN IN XEROX COPIES
26650 CC GO TO 23
26700 CC
26725 CC22 IF(JQ(1).NE.0)GO TO 23
26750 CC IF(CC.EQ.1000)GO TO 23
26775 C ABOVE TO SKIP DISTORTION ON COMMAND
26800 C CHANGE ABOVE TO 'JFCL' IN DDT TO USE NEXT ITEMS.
27000 C USE THIS IN DDT TO DISTORT ITEMS. CC MUST BE > DD
27100 CC B=B*(CC-BB*ABS(A))
27150 C CC IS HGT FACTOR.
27200 CC23 IF(IPLT)GO TO 2
27300 CC M=A*RSZ
27400 CC N=B*RSZ
27500 CC IF(RSZ.LE.0.8571)GO TO 3
27600 C NEXT FOR DISPLAY MAGNIFICATION
27700 CC M=M-JCEN
27800 CC N=N-KCEN
27900 CC IF(JA.NE.8)GO TO 5
28000 C NEXT INSURES DISPLAY OF STAFF LINES
28100 CC IF(M.GT.511)M=511
28200 CC IF(M.LT.-511)M=-511
28400 CC5 IF(IABS(M).GT.512)GO TO 77
28450 CC IF(IABS(N).LT.512)GO TO 4
28500 C NOW DRAWS INVISIBLE VECT. IF IT GOES OFF THE SCREEN.
28600 CC77 KZ=-1
28700 CC RETURN
28800 CC4 IF(KZ.EQ.0)GO TO 6
28900 CC KZ=0
29000 CC GO TO 1
29050 CC3 IF(JA.EQ.44)GO TO 6
29075 C JA=44=BAR LINES - THEY DON'T FIGURE IN MAX. HGT.
29100 CC K=B
29200 CC IF(K.GT.ITOP)ITOP=B
29300 CC IF(K.LT.IBOT)IBOT=B
29302 CC6 IF(JJ2.GT.3990)RETURN
29400 CC IF(L.EQ.3)GO TO 1
29500 CC CALL AVECT(M,N)
29600 CC RETURN
29700 CC1 CALL AIVECT(M,N)
29800 CC RETURN
29900 CC2 IF(IPLT.EQ.-2)RETURN
30300 C RXGP SETS UP-DOWN POS. ON XEROX PAPER (FRACTIONAL POSITIONS POSSIBLE.)
31110 CC9 M=ROFF(A*DIS)
31120 CC N=ROFF(B*RHT)
31200 CC8 CALL PLOT(M,N,L)
31400 CC END
31540
35100 C****** FOR 'HOMING' OF BEAMS AND CHORD NOTES ***********
35200 SUBROUTINE HOMER
35300 IMPLICIT INTEGER(A-Q,S-Z)
35400 REAL PWDS,DISX,A,B,PLACE,STFF
35500 COMMON /STF/RSTFAC(-3/4),RSTJ2
35600 COMMON R2,JA,CENTR,J2,RJQ(20),JQ(20) /POSI/STFF(-3/4),JJ2,POS
35700 COMMON /XRN/RN(4000) /PTR/PWDS(250),ITEM,L,I,IX
35800 COMMON/ALF/QQ(3),K,RA,RB,N,RG,M,X,RE,RF,A,B,DISX,INP(58)
35900 EQUIVALENCE (R3,RJQ(1)),(R6,RJQ(4)),(J11,JQ(9)),(RD,RN(4000))
36000 1,(R7,RJQ(5)),(R9,RJQ(7)),(R11,RJQ(9)),(R13,RJQ(11))
36100 1,(J10,JQ(8)),(R8,RJQ(6))
36200 IF(JA.EQ.6)GO TO 9
36300 IF(R13.NE.0)GO TO 10
36400 C FOR GENL HOMING; WORDS; BEAMS; STEMS;
36500
36600 IF(JQ(1).EQ.0)GO TO 197
36700 C TO HOME IN ON NOTE ON DIFFERENT STAFF.
36800 JJ2=R2
36900 K=PWDS(JJ2)
37000 L=PWDS(JQ(1))
37100 RA=RN(K+3)
37200 RB=RN(L+3)
37300 C RB=POS OF NOTE, RA=POS(P3) OF BEAM
37400 N=0
37500 IF(RN(L+5).LT.20)N=-1
37600 C -1 MEANS STEM IS UP
37700 RG=-(AMOD(RN(K+7),10.)-1.)*11./7.
37800 C SPACE FOR THE NUMB. OF BEAMS
37900 J11=RN(L+2)
38000 M=0
38100 IF(RN(K+7).LT.20.)M=-1
38200 X=RN(K+2)
38300 C THE STAFF NUMS. X=BEAM J11=NOTE
38400 R3=RSTFAC(X)
38500 R9=RSTFAC(J11)/R3
38600 R8=R3*14.54/5.96
38700 C R8=WIDTH OF NOTE
38800 C******* 5/74 BOTH STAVES MUST BE SAME SIZE - MOST LIKELY ********
38900 R7=96./7.
39000 C MUST BE DOUBLE STEM LENGTH
39100 RD=RN(L+8)
39200 CC IF(RD.EQ.999)RD=0
39300 C THE STEM LENGTH
39400 CC2 JD=6
39500 CC J10=5
39600 CC IF(RA+3.GE.RB)GO TO 3
39700 CC JD=6
39800 CC J10=5
39900 3 IF(M.NE.N)GO TO 5
40000 R8=0
40100 R7=0
40200 RG=0
40300 GO TO 4
40400 5 IF(M.EQ.0)GO TO 4
40500 R7=-R7
40600 R8=-R8
40700 RD=-RD
40800 RG=-RG
40900
41000 C NOT OK IF DIFF SIZES AND RA.GT.RB ****** 5/74
41100 4 RN(K+6)=RB+R8
41200 C SETS CORRECT HORIZANTAL PARAM OF BEAM.
41300 RF=7.*R9
41400 RE=(STFF(J11)-STFF(X))/RF
41500 C DIST BETWEEN STAVES.
41600 RN(K+5)=RN(L+4)+RE+(R7+RD+RG)*R9
41700 RETURN
41800
41900 C*********************************************************
42000 C NEXT ADJUSTS STEMS WHEN BEAMS ARE USED.
42100 197 JJ2=-1
42200
42300 R3=R2
42400 DO 191 K=1,ITEM
42500 L=PWDS(K)
42600 IF(RN(L+1).NE.6)GO TO 191
42650 IF(RN(L+2).EQ.R3)GO TO 77
42675 IF(R3.LT.5.)GO TO 191
42700 C TYPE 19 99 FOR ALL STAVES
42800 77 RG=RN(L+7)
42900 IF(RN(L).EQ.8)GO TO 191
42950 IF(RG.LT.10.)GO TO 191
43000 C FINDS BEAMS.
43100 A=RN(L+3)-.01
43200 B=RN(L+6)+.01
43300 C POS 1 AND 2
43400 DISX=B-A
43500 C DISTANCE IN REAL STEPS
43600 RB=AMOD(RN(L+5),100.0)
43700 C NOTE 2
43800 RF=AMOD(RN(L+4),100.0)
43900 RD=RB-RF
44000 C HEIGHT
44100 R2=RN(L+2)
44200 C ↑↑↑ USED IN 'FINDIT'
44300 X=RG/10.
44400 C STEM DIRECT.
44500
44600 DO 192 N=1,ITEM
44700 CC L=PWDS(N)
44800 IF(FINDIT(N))GO TO 192
44900 IF(RN(L).EQ.8)GO TO 192
44950 IF(RN(L+8).EQ.1000.)GO TO 192
45000 C SKIPS SLASHED GRACE NOTES (P8=1000 OR P10=1)
45100 C FINDIT IS NEG. IF(RN(L+1).NE.1.OR.RN(L+3))
45200 RC=RN(L+3)
45300 IF(RC.LT.A)GO TO 192
45350 IF(RC.GT.B)GO TO 192
45400 C WHAT'S LEFT IS IN BEAM AREA IF STEM DIR. IS OK.
45500 IF(X.NE.IFIX(RN(L+5)/10.))GO TO 192
45600 RC=RC-A
45700 193 RE=AMOD(RN(L+4),100.0)
45800 RC=RD*RC/DISX+RF
45900 RG=RN(L+7)
46000 RN(L+7)=RG-AMOD(RG,10.0)+AMOD(RG,1.0)
46100 C DELETES TAILS WITHOUT REMOVING DOTS OR SPACING OF DOTS.
46200 C FRACTIONAL NOTE #
46300 195 RA=RC-RE
46400 IF(X.EQ.2)RA=-RA
46500 IF(RA.EQ.0)RA=999.
46600 196 RN(L+8)=RA
46700 C FRACTIONAL NOTE # - FIRST NOTE OF GROUP + THIS NOTE # ALL *7.
46800 IF(JJ2)JJ2=N
46900 C SAVES # OF FIRST ITEM FOUND
47000 192 CONTINUE
47100 191 CONTINUE
47200 RETURN
47300
47400 C*********************************************************
47500 9 IF(J11.LT.0)RETURN
47600 C IF P11=-1 NO HOMING
47700 X=R7/10.
47800 C X IS STEM DIRECTION
47900 RA=R9
48000 C R9= POS3
48100 RC=-1.
48200 IF(R9.NE.0)RC=-2.
48300 IF(J10/100.EQ.3)RC=-3
48400 C RC=1 ESCAPES FROM LOOP.
48500 C HOMING RANGE FOR BEAMS
48600 10 IF(R11.EQ.0)R11=2.9
48700 C IF P11.NE.0 RANGE IS CHANGED FROM 2
48800 IF(JA.EQ.8)RC=-1
48900 DO 361 K=1,ITEM
49000 IF(FINDIT(K))GO TO 361
49100 C SKIPS NOTES ON WRONG LINE
49200 RD=RN(L+3)
49300 1 IF(JA.NE.6)GO TO 177
49350 IF(IFIX(RN(L+5)/10).NE.X)GO TO 361
49400 177 IF(PLACE(R3))GO TO 461
49500 R3=RD
49600 C LOOKS FOR NOTE, STAFF #, STEM DIR.
49700 IF(JA.EQ.6)GO TO 261
49750 IF(JA.EQ.5)GO TO 261
49800 RETURN
49900
50000 461 IF(JA.EQ.6)GO TO 277
50050 IF(JA.NE.5)GO TO 361
50100 277 IF(PLACE(R6))GO TO 561
50200 R6=RD
50300 GO TO 261
50400 561 IF(PLACE(RA))GO TO 661
50500 R9=RD
50600 GO TO 261
50700 661 IF(JA.EQ.5)GO TO 361
50750 IF(J10.LT.300)GO TO 361
50800 IF(PLACE(R8))GO TO 361
50900 C HOMES INNER PARTIAL BEAMS
51000 R8=RD
51100 261 RC=RC+1
51200 IF(RC.EQ.1.)RETURN
51300 361 CONTINUE
51400 END
51500
51600 CF FUNCTION PLACE(X)
51700 CF COMMON R2,JA,CENTR,J2,RJQ(20),JQ(20)/XRN/RN(4000)
51800 CF EQUIVALENCE (R11,RJQ(9)),(RD,RN(4000))
51900 CF PLACE=R11-ABS(RD-X)
52000 CF END
52100
52200 CF FUNCTION FINDIT(N)
52300 CF COMMON R2,JA,CENTR,J2,RJQ(20),JQ(20)
52400 CF COMMON /XRN/RN(4000) /PTR/PWDS(250),ITEM,L,I,IX
52500 CF FINDIT=0
52600 CF L=PWDS(N)
52700 CF IF(RN(L+1).NE.1)GO TO 377
52750 CF IF(RN(L+2).EQ.R2)RETURN
52775 CF377 FINDIT=-1
52800 CF END
52900
53000 SUBROUTINE SCL
53100 C SETS UP SCALING MARKERS.
53200 DIMENSION SU(400)
53300 COMMON /STF/RSTFAC(-3/4),RSTJ2 /XRN/RN(4000)
53400 COMMON R2,JA,CT,J2,R3,R4,R5,RJQ(17),J3,J4,J5,J6,J(16)
53500 1 /POSI/STFF(-3/4),J102,POS
53600 EQUIVALENCE (SU(400),RN(3001))
53700 J2=R2
53800 IF(J2.NE.99)GO TO 1008
53900 CALL HYDPOG(2)
54000 RETURN
54100 1008 J5=0
54200 J6=0
54300 RSTJ2=RSTFAC(J2)
54400 C SETS UP SCALE LINES.
54500 J4=200
54600 IF(R3.NE.0)J4=400
54700 C PUTS SCALE TO 400
54800 R2=STFF(J2)+60.*RSTJ2
54900 RJ=R2+60.
55000 CALL DPYSET(2,SU,700)
55100 CALL DPYBRT(1)
55200 POS=RJ+40.
55300 RSTJ2=1.
55400 DO 1002 MX=10,J4,10
55500 RA=RHORZ(FLOAT(MX))
55600 R3=RA-58
55700 IF(MX.GT.10)CALL PNUM
55800 CC1005 IF(R5.NE.0)GO TO 1007
55900 C JUMP FOR STAFF NUMBERS
56000 CALL LINX(RA,R2,RA,RJ)
56100 J5=J5+1
56200 1002 IF(J5.EQ.10)J5=0
56300 CALL LINES(-596.0,RJ,2)
56400 CALL LINES(-596.0,R2,2)
56500 R6=1.5
56600 C NEXT SETS UP STAFF NUMBERS
56700 R3=-620.
56800 DO 1007 K=-3,4
56900 POS=STFF(K)+40.
57000 J5=IABS(K)
57100 CALL PNUM
57200 1007 CONTINUE
57300 CALL DPYOUT(2)
57400 CALL SETPOG(1)
57500 END